package com.academic.system.model;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 横向课题实体类
 */
public class HorizontalProject {
    
    private Integer id;
    private String projectName;         // 项目名称
    private String contractNumber;      // 合同号
    private BigDecimal contractAmount;  // 合同总金额
    private String clientName;          // 甲方单位名称
    private String projectLeader;       // 项目负责人
    private String executiveLeader;     // 执行负责人
    private String duration;            // 期限
    private String paymentRecord;       // 到款记录
    private String participants;        // 参与人
    private String financialAccount;    // 财务账号
    private String paymentVoucher;      // 到款凭证
    private LocalDate completionDate;   // 结题时间
    private String paymentVoucherExtra; // 到款凭证.1
    private String completionCertificate; // 结题证明
    private String completionReport;    // 结题报告
    private LocalDate submissionDate;   // 填报日期
    private String approvalStatus;      // 审核状态：pending, approved, rejected
    private String approvalComment;     // 审核意见
    private User creator;               // 创建者
    private User approver;              // 审核者
    
    public HorizontalProject() {
        this.submissionDate = LocalDate.now();
        this.approvalStatus = "pending";
    }
    
    // Getters and Setters
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getProjectName() {
        return projectName;
    }
    
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
    
    public String getContractNumber() {
        return contractNumber;
    }
    
    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }
    
    public BigDecimal getContractAmount() {
        return contractAmount;
    }
    
    public void setContractAmount(BigDecimal contractAmount) {
        this.contractAmount = contractAmount;
    }
    
    public String getClientName() {
        return clientName;
    }
    
    public void setClientName(String clientName) {
        this.clientName = clientName;
    }
    
    public String getProjectLeader() {
        return projectLeader;
    }
    
    public void setProjectLeader(String projectLeader) {
        this.projectLeader = projectLeader;
    }
    
    public String getExecutiveLeader() {
        return executiveLeader;
    }
    
    public void setExecutiveLeader(String executiveLeader) {
        this.executiveLeader = executiveLeader;
    }
    
    public String getDuration() {
        return duration;
    }
    
    public void setDuration(String duration) {
        this.duration = duration;
    }
    
    public String getPaymentRecord() {
        return paymentRecord;
    }
    
    public void setPaymentRecord(String paymentRecord) {
        this.paymentRecord = paymentRecord;
    }
    
    public String getParticipants() {
        return participants;
    }
    
    public void setParticipants(String participants) {
        this.participants = participants;
    }
    
    public String getFinancialAccount() {
        return financialAccount;
    }
    
    public void setFinancialAccount(String financialAccount) {
        this.financialAccount = financialAccount;
    }
    
    public String getPaymentVoucher() {
        return paymentVoucher;
    }
    
    public void setPaymentVoucher(String paymentVoucher) {
        this.paymentVoucher = paymentVoucher;
    }
    
    public LocalDate getCompletionDate() {
        return completionDate;
    }
    
    public void setCompletionDate(LocalDate completionDate) {
        this.completionDate = completionDate;
    }
    
    public String getPaymentVoucherExtra() {
        return paymentVoucherExtra;
    }
    
    public void setPaymentVoucherExtra(String paymentVoucherExtra) {
        this.paymentVoucherExtra = paymentVoucherExtra;
    }
    
    public String getCompletionCertificate() {
        return completionCertificate;
    }
    
    public void setCompletionCertificate(String completionCertificate) {
        this.completionCertificate = completionCertificate;
    }
    
    public String getCompletionReport() {
        return completionReport;
    }
    
    public void setCompletionReport(String completionReport) {
        this.completionReport = completionReport;
    }
    
    public LocalDate getSubmissionDate() {
        return submissionDate;
    }
    
    public void setSubmissionDate(LocalDate submissionDate) {
        this.submissionDate = submissionDate;
    }
    
    public String getApprovalStatus() {
        return approvalStatus;
    }
    
    public void setApprovalStatus(String approvalStatus) {
        this.approvalStatus = approvalStatus;
    }
    
    public String getApprovalComment() {
        return approvalComment;
    }
    
    public void setApprovalComment(String approvalComment) {
        this.approvalComment = approvalComment;
    }
    
    public User getCreator() {
        return creator;
    }
    
    public void setCreator(User creator) {
        this.creator = creator;
    }
    
    public User getApprover() {
        return approver;
    }
    
    public void setApprover(User approver) {
        this.approver = approver;
    }
} 